
main(){
    streamStudy();
}

//todo Stream 也是用于接收异步事件数据，和 Future 不同的是，它可以接收多个异步操作的结果（成功或失败）。Stream 常用于会多次读取数据的异步任务场景，如网络内容下载、文件读写等。
streamStudy(){
  Stream.fromFutures([
      Future.delayed(const Duration(seconds: 2),(){
        return "1";
      }),
      Future.delayed(const Duration(seconds: 2),(){
        throw AssertionError("error");
      }),
      Future.delayed(const Duration(seconds: 2),(){
        return "2";
      }),
      Future.delayed(const Duration(seconds: 2),(){
        return "3";
      }),
  ]).listen((data){
    print(data);
  },onError: (e){
    print("error:${e.message}");
  },onDone: (){
    print("done");
  });
}
